package Facade;
//implementa logica de negocio e chama DAO
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collection;

import DAO.LivroDAO;
import TO.LivroTO;
import TO.UsuarioTO;

public class LivroFacade {
	private LivroTO livroTO;
	private LivroDAO livroDAO;
	private UsuarioTO userTO;
	
	private LivroFacade (LivroTO livroTO, UsuarioTO userTO){
		this.livroTO = livroTO;
		livroDAO = new LivroDAO();
		this.userTO = userTO;
	}
	
	private LivroFacade (LivroTO livroTO){
		this.livroTO = livroTO;
		livroDAO = new LivroDAO();
	}
	
	public LivroFacade() {
	}

	public int emprestar(){
		 		
		if (userTO.getTipo() == 1){
			return livroDAO.emprestar(livroTO.getCodigo(), livroTO.isEmprestado(), livroTO.getProntuario(), livroTO.getDataEmprestimo(), livroTO.getDataDevolucao());
		}
		else if (userTO.getTipo() == 2){
			return livroDAO.emprestar(livroTO.getCodigo(), livroTO.isEmprestado(), livroTO.getProntuario(), livroTO.getDataEmprestimo(), livroTO.getDataDevolucao());
		}
		else
			return livroDAO.emprestar(livroTO.getCodigo(), livroTO.isEmprestado(), livroTO.getProntuario(), livroTO.getDataEmprestimo(), livroTO.getDataDevolucao());
    }
	
	public int devolver(String codigo){
        Calendar calendar = Calendar.getInstance();
                
        Date hoje = (Date) calendar.getTime();
        int atraso;
        if ((livroDAO.consultaDevolver(codigo).compareTo(hoje))>=0){
                System.out.println("Livro devolvido com sucesso");
                return livroDAO.devolver(codigo,false, hoje);
        }
        else {
                atraso = livroDAO.consultaDevolver(codigo).compareTo(hoje);
                System.out.println("Livro em atraso:" + atraso + "dias!");
                return livroDAO.devolver(codigo,false, hoje);     
        }
	}

	public static Collection<LivroTO> consultar() {
		return LivroDAO.consultar();
	}
}    
